/*
* sop项目表模块
*/
const express = require('express');
const router = express.Router();
// 引入数据库
const db = require("../../config/db");
// 引入时间包
const moment = require("moment");
// 引入方法库
const { toCamelCase, toUnderlineCase, verifyToken, recursionGenerateTree } = require("../../config/utils");
// 引入日志
const log = require("../log");

// 查询*sop项目*总数接口
router.get('/totalProject', (req, res) => {
    console.log("==========查询*sop项目*总数接口============");
    const sql = `SELECT count(*) as projectTotal FROM sop_projects`;
    db.query("查询*sop项目*总数接口", sql, (err, result) => {
        if (err) {
            res.send({ code: 500, msg: '查询*sop项目*总数接口失败' })
            return
        }
        // 查询项目总数
        res.send({
            code: 200,
            msg: '查询*sop项目*总数接口成功',
            projectTotal: result[0].projectTotal,
        })
    })
})

// 新增*sop项目*
router.post("/", (req, res) => {
    console.log("=========== 新增*sop项目*接口============");
    // 获取参数
    let { name, nameNumber, status } = req.body;
    // 获取创建人
    let { username } = verifyToken(req.headers.authorization);
    // 获取创建时间
    let createTime = moment().format("YYYY-MM-DD HH:mm:ss");
    // 判断当前项目名称和项目编号是否存在
    let sql_check = `select * from sop_projects where (name = '${name}' or name_number = '${nameNumber}')`;
    db.query("判断当前项目名称和项目编号是否存在", sql_check, (err, sql_check_result) => {
        if (err) {
            res.send({ code: 500, msg: "判断当前项目名称和项目编号是否存在失败", data: err });
            return;
        }
        if (sql_check_result.length > 0) {
            // 判断是名称还是编号重复
            if (sql_check_result[0].name == name) {
                res.send({ code: 500, msg: "项目名称已存在，请重新输入！" });
                return;
            }
            if (sql_check_result[0].name_number == nameNumber) {
                res.send({ code: 500, msg: "项目编号已存在，请重新输入！" });
                return;
            }
            res.send({ code: 500, msg: "已存在相同顺序或名称，请重新输入！" });
            return;
        }
        // 插入数据库
        let sql = `insert into sop_projects (name, name_number, status, create_by, create_time) values 
        ('${name}', '${nameNumber}', '${status}', '${username}', '${createTime}')`;
        db.query("新增*sop项目*", sql, (err1, result) => {
            if (err1) {
                res.send({ code: 500, msg: "新增*sop项目*失败", data: err1 });
                return;
            }
            if (result.affectedRows > 0) {
                res.send({ code: 200, msg: "新增*sop项目*成功" });
            } else {
                res.send({ code: 500, msg: "新增*sop项目*失败" });
            }
        })

    })
})

// 修改*sop项目*
router.put("/updateProject", (req, res) => {
    console.log("=========== 修改*sop项目*接口============");
    // 获取参数
    let { deptName, deptNum, status, orderNum, deptId } = req.body;
    // 获取创建人
    let { username } = verifyToken(req.headers.authorization);
    // 获取创建时间
    let createTime = moment().format("YYYY-MM-DD HH:mm:ss");
    // 判断当前项目和项目名称是重复
    let sql_check = `select * from sop_projects where (name = '${deptName}' or name_number = '${deptNum}') and id != '${deptId}'`;
    db.query("修改*sop项目*判断当前项目和项目名称是重复", sql_check, (err, sql_check_result) => {
        if (err) {
            res.send({ code: 500, msg: "修改*sop项目*判断当前项目和项目名称是重复失败", data: err });
            return;
        }
        if (sql_check_result.length > 0) {
            if (sql_check_result[0].name == deptName) {
                res.send({ code: 500, msg: "当前项目已存在相同项目名称，请重新输入！" });
                return;
            }
            if (sql_check_result[0].name_number == deptNum) {
                res.send({ code: 500, msg: "当前项目已存在相同项目编号，请重新输入！" });
                return;
            }
        }
        // 修改数据库
        let sql = `update sop_projects set name = '${deptName}', name_number = '${deptNum}', status = '${status}', update_by = '${username}', 
        update_time = '${createTime}', order_num = '${orderNum}' where id = '${deptId}'`;
        db.query("修改*sop项目*", sql, (err1, result) => {
            if (err1) {
                res.send({ code: 500, msg: "修改*sop项目*失败", data: err1 });
                return;
            }
            if (result.affectedRows > 0) {
                res.send({ code: 200, msg: "修改*sop项目*成功" });
            } else {
                res.send({ code: 500, msg: "修改*sop项目*失败" });
            }
        })
    })
})

module.exports = router;